// ./config/redis.config.js

const redis = require('redis');
require('dotenv').config();
const logger = require('./logger.config'); // 引入日志工具

const REDIS_URL = process.env.REDIS_URL || 'redis://localhost:6379';

// 使用 URL 连接 (推荐，因为它包含了主机和端口信息)
const client = redis.createClient({ url: REDIS_URL });

client.on('connect', () => {
    logger.info('✅ Redis 客户端连接成功！');
});

client.on('error', (err) => {
    // 记录 Redis 连接错误，并发送告警
    logger.error(`❌ Redis 连接错误: ${err.message}`);
    // 在生产环境可以调用 sendAlert(..)，这里省略以免过度重复
});

// 连接 Redis 实例
const connectRedis = async () => {
    try {
        await client.connect();
    } catch (error) {
        // 如果连接失败，等待重试或退出进程
        logger.error(`致命错误: 无法连接到 Redis Server: ${error.message}`);
        // process.exit(1); // 生产环境可能需要退出
    }
};

// 导出客户端和连接函数
module.exports = { client, connectRedis };
